In recent years, digitalization of motion pictures has become widespread, as represented by the terrestrial digital broadcasting.
In line with this, technologies of compressing motion pictures have been developed. For example, MPEG (Moving Picture Experts Group) encoding has achieved a highly efficient compression by detecting and storing only moving portions of an image.
Also, with the diversification of digital AV devices and the like in recent years, an MPEG encoding LSI is now loaded in various types of devices. For example, an application called MPEG2 Encode can operate in desktop DVD recorders and also in camcorders being mobile devices.
In this case, although the same application, namely MPEG2 Encode, is used in both types of devices, the desktop DVD recorders are required to execute an algorithm that guarantees higher image quality than the camcorders being mobile devices.
To satisfy the requirement, it is desirable that processes are performed flexibly depending on the purposes by software on common hardware.
Here, the MPEG encoding will be explained briefly. According to this method, it is required to store (i) motion vectors, which represent the direction and the degree of a move of an object of the current frame in the past and future frames, and (ii) amounts of change in the brightness and color difference, that are not represented by the motion vectors.
The process of obtaining the motion vectors is called a motion vector detection process (see FIG. 1). The process requires a very large amount of processing, compared with general image processes such as resize filtering or motion compensation.
The reason for requiring the very large amount of processing is as follows. In general, with respect to a unit called macro block of 16×16 pixels (FIG. 1, target image 200), a search is made for where in the past or future frame (FIG. 1, reference image 100) the macro block moves to, by shifting it in sequence by one pixel. As a result of the search, a portion having the highest degree of similarity with the target image is detected, and the motion vector of the detected portion is obtained. The number of macro blocks contained in a frame is, for example, 1350 in the case of a frame composed of 720×480 dots. The search is made for each of the macro blocks.
Accordingly, in MPEG encoding, the performance of the motion vector detection process is important.
Since the motion vector detection process is a repetition of the same process, technologies for improving the processing performance by using a calculation device, in which a plurality of calculators are expanded in one or two dimensional direction, have been developed.
Currently, calculation devices in which calculators are expanded in one dimensional direction are used in general image processing. In such calculation devices, however, only a small number of calculators can used in parallel. And in many cases, reduction of operating frequency, namely reduction of voltage cannot be achieved sufficiently. For this reason, in terms of the problem of heat and power consumption, it is desirable for mobile devices and home electric appliances to use a calculation device in which calculators are expanded in two dimensional direction (hereinafter referred to as two dimensional array calculation device) since the two dimensional array calculation devices can include more calculators that can be used in parallel and can use less operating frequency than one dimensional array calculation devices.
As one of technologies for improving the performance of the two dimensional array calculation devices, disclosed is a technology for reducing the wait time that occurs during data communications among a plurality of calculators (see Document 1).
Document 1: Japanese Patent Application Publication No. 09-022404